/******************************************************************************

	COPYRIGHT(C) JONAS 'SORTIE' TERMANSEN 2010.

	This file is part of the Maxsi Library.

	Maxsi Library is free software: you can redistribute it and/or modify it
	under the terms of the GNU Lesser General Public License as published by
	the Free Software Foundation, either version 3 of the License, or (at your
	option) any later version.

	Maxsi Library is distributed in the hope that it will be useful, but
	WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
	or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
	License for more details.

	You should have received a copy of the GNU Lesser General Public License
	along with Maxsi Library. If not, see <http://www.gnu.org/licenses/>.

	Maxsi Library
	A powerful Cross-Platform C++ General Purpose Library that allows you to
	efficiently create high-performance and reliable applications.

	MaxsiHeaders.h
	Uses the macros defined in MaxsiDefines.h to include the proper system-
	specific headers.

******************************************************************************/

#ifndef MaxsiHeaders_H
#define MaxsiHeaders_H

//=============================================================================
//	Standard Include Headers.
//=============================================================================
#include <stdio.h>
#include <limits.h>
#include <malloc.h>
#include <string.h>
#include <wchar.h>
#include <errno.h>
#include <new>
#include <assert.h>

//=============================================================================
//	Detect if we are using a Microsoft compiler without a <stdint.h> header.
//=============================================================================
#ifdef Maxsi_Using_MSC_StdInt
	#include "MaxsiStdIntMSC.h"
#endif

//=============================================================================
//	Windows Header Defines.
//=============================================================================
#ifdef Maxsi_Support_W32
	#if _WIN32_WINNT < 0x0600
		#undef _WIN32_WINNT
		#define _WIN32_WINNT	0x0600
	#endif
	#if _WIN32_IE < 0x0501
		#undef _WIN32_IE
		#define _WIN32_IE		0x0501	// Required by commctrl.h (MingW 64)/InitCommonControlsEx()/PBM_SETBARCOLOR
	#endif
	#include <winsock2.h>
	#include <windows.h>
#endif

//=============================================================================
//	Unix Header Defines.
//=============================================================================
#ifdef Maxsi_Support_UNIX
	#include <stdlib.h>
	#include <stdint.h>
	#include <stdarg.h>
	#include <sys/types.h>
	#include <sys/stat.h>
	#include <sys/time.h>
	#include <inttypes.h>
	#include <limits.h>
	#include <fcntl.h>
	#include <unistd.h>
	#include <time.h>
#endif

//=============================================================================
//	MinGW Header Defines.
//=============================================================================
#ifdef __MINGW64__
	#include <stdint.h>
#endif

//=============================================================================
//	The SSE instructions for the x86 architecture.
//=============================================================================
#ifdef Maxsi_Support_SSE
	#include <xmmintrin.h>
#endif

//=============================================================================
//	The SSE2 instructions for the x86 architecture.
//=============================================================================
#ifdef Maxsi_Support_SSE2
	#include <emmintrin.h>
#endif

#endif

